package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Time;

import modelo.Jugador;
import modelo.JugadorDAO;
import modelo.Nivel;
import modelo.NivelDAO;

import vista.VentanaRegistrarJugador;

public class ControladorRegistrarJugador implements ActionListener {
	
	private VentanaRegistrarJugador ventanaRegistrarJugador;
	
	private int vienePor;
	private int idnivel;
	private Time puntajeNuevo;
	private Time puntajeViejo;
	
	private Nivel nivel;
	private NivelDAO nivelDAO;

	public ControladorRegistrarJugador(int vienePor, int idnivel, 
			Time puntajeNuevo, Time puntajeViejo) {
		super();
		// TODO Auto-generated constructor stub
		ventanaRegistrarJugador = new VentanaRegistrarJugador();
		ventanaRegistrarJugador.setVisible(true);
		ventanaRegistrarJugador.addListener(this);
		this.vienePor = vienePor;
		this.idnivel = idnivel;
		this.puntajeNuevo = puntajeNuevo;
		this.puntajeViejo = puntajeViejo;
		
		nivel = new Nivel();
		nivelDAO = new NivelDAO();
		nivel = nivelDAO.buscarNivelPorid(idnivel);
		
		ventanaRegistrarJugador.actualizarDescripcionNivel(nivel.getDescripcion());
		ventanaRegistrarJugador.actualizarPuntaje(puntajeNuevo);
	}
	
	public void accionAceptar() {
		if (ventanaRegistrarJugador.getNombre().equals(""))
			ventanaRegistrarJugador.mostrarMensaje("Debes colocar tu nombre");
		else{
			 
			JugadorDAO jugadorDAO = new JugadorDAO();
			int idjugador = jugadorDAO.generaridJugador(idnivel);
			String nombre = ventanaRegistrarJugador.getNombre();
			
			Jugador jugador = new Jugador(idjugador, nombre, puntajeNuevo, nivel);
						
			if (vienePor==1)
				jugadorDAO.registrarJugador(jugador);
			else if (vienePor==2)
				jugadorDAO.actualizarJugador(nombre, puntajeViejo, puntajeNuevo, idnivel);
			ventanaRegistrarJugador.mostrarMensaje("Puntaje guardado");
			ventanaRegistrarJugador.limpiarNombre();
		}
			
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String actionCommand = e.getActionCommand();
		if (actionCommand.equals("Aceptar")) {
			accionAceptar();
			ventanaRegistrarJugador.setVisible(false);
		}
	}
	
}
